using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace QldtSdh.DAL.Models.Mapping
{
	public class LopKhoaNganhMap : EntityTypeConfiguration<LopKhoaNganh>
	{
		public LopKhoaNganhMap()
		{
			// Khoá chính
			this.HasKey(t => t.MaLopKhoaNganhGUID);

			// Các cột
			this.Property(t => t.MaLopKhoaNganhGUID)
				.IsRequired()
                .HasMaxLength(50);

			this.Property(t => t.TenLopKhoaNganh)
				.IsRequired()
                .HasMaxLength(255);

			this.Property(t => t.MaCoSoDaoTaoGUID)
				.IsRequired()
                .HasMaxLength(50);

			this.Property(t => t.MaDaoTaoKhoaNganhGUID)
				.IsRequired()
                .HasMaxLength(50);

			// Ánh xạ Property của POCO vào Column của Table
			this.ToTable("LopKhoaNganh");
			this.Property(t => t.MaLopKhoaNganhGUID).HasColumnName("MaLopKhoaNganhGUID");
			this.Property(t => t.TenLopKhoaNganh).HasColumnName("TenLopKhoaNganh");
			this.Property(t => t.MaCoSoDaoTaoGUID).HasColumnName("MaCoSoDaoTaoGUID");
			this.Property(t => t.MaDaoTaoKhoaNganhGUID).HasColumnName("MaDaoTaoKhoaNganhGUID");

			// Các quan hệ
			this.HasRequired(t => t.CoSoDaoTao)
				.WithMany(t => t.ListLopKhoaNganh)
				.HasForeignKey(d => d.MaCoSoDaoTaoGUID);
			this.HasRequired(t => t.KhoaHoc_NganhDaoTao)
				.WithMany(t => t.ListLopKhoaNganh)
				.HasForeignKey(d => d.MaDaoTaoKhoaNganhGUID);

		}
	}
}
